Skip to content

Fix VirtualThread support on multiple unmount/remount cycles #10931

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit intomasterfrom
bbujon/virtual-threads
Mar 26, 2026
Merged

Fix VirtualThread support on multiple unmount/remount cycles #10931
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit intomasterfrom
bbujon/virtual-threads

Conversation

@PerfectSlayer
Copy link
Copy Markdown
Contributor

What Does This Do

This PR supersedes #10887 to fix context tracking on multiple virtual thread unmount / remount cycles.

Motivation

Previously, only one mount was supported, leading to context break.

Additional Notes

This PR is a re-implementation and adds the following changes compared to the original PR report:

  • Updates the Javadoc to clarify the expected lifecycle and context related operations
  • Distinguishes afterTerminate / afterDone hooks
  • Uses typed ContextScope to reduce unnecessary type casts
  • Avoid unnecessary null checks for null-safe API calls
  • Does not test remount cycle from the tests dedicated to VirtualThread and its builder API but creates a dedicated test suite
  • Does not limit to test the missing behavior but tests other cases too like:
    • multiple unmount/remount cycles
    • implicit (tracing) context restored
    • multiple virtual threads unmount/remount cycles
    • sanity check without context
  • Tries to trigger unmount more reliably - no dedicated API for so we can expect the test to flake
  • Removes the logging correlation concern from the test cases to focus only on context tracking
  • Adds thread join timeout

Contributor Checklist

Jira ticket: [PROJ-IDENT]

Note: Once your PR is ready to merge, add it to the merge queue by commenting /merge. /merge -c cancels the queue request. /merge -f --reason "reason" skips all merge queue checks; please use this judiciously, as some checks do not run at the PR-level. For more information, see this doc.

@PerfectSlayer PerfectSlayer requested a review from a team as a code owner March 23, 2026 13:00
@PerfectSlayer PerfectSlayer requested review from dougqh and removed request for a team March 23, 2026 13:00
@PerfectSlayer PerfectSlayer added type: bug Bug report and fix comp: context propagation Trace context propagation inst: java Core Java language instrumentation labels Mar 23, 2026
spanIdsAfterRemount[remount] = GlobalTracer.get().getSpanId();
}
});
try {
Copy link
Copy Markdown
Contributor

@dougqh dougqh Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does the method throws InterruptedException,
when in the body it catches and wraps InterruptedException in a RuntimeException

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahah, no, that was not AI generated. I took it from the original reproducer: https://github.com/DataDog/dd-trace-java/pull/10887/changes#diff-7981a7fa278247a76ac7f99feef1b2ae6fd4dc3dabd694140324fbb22083ea1dR145 but I clearly forgot to clean it up.
And as I duplicated the test cases, it propagated along all test methods. I will clean it up, thanks for catching it!

Copy link
Copy Markdown
Contributor

@dougqh dougqh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, the change looks good to me.

The handling of InterruptedException-s in the test seems like it could be cleaned up. The test methods are both throwing InterruptedException, but also catching InterruptedException and wrapping in RuntimeException.

I would expect them to do one or the other but not both. Admittedly, I didn't read the tests carefully, so ultimately, I'll leave it to your judgment.

@PerfectSlayer
Copy link
Copy Markdown
Contributor Author

Admittedly, I didn't read the tests carefully, so ultimately, I'll leave it to your judgment.

The part where I'm not confident is the use of String[] to capture the span identifiers.
It should be fine as I wait for all threads to join and each thread has its own slot so I should be fine.

@PerfectSlayer PerfectSlayer force-pushed the bbujon/virtual-threads branch from 03f4969 to 96eda42 Compare March 26, 2026 14:13
@PerfectSlayer
Copy link
Copy Markdown
Contributor Author

/merge

@gh-worker-devflow-routing-ef8351
Copy link
Copy Markdown

gh-worker-devflow-routing-ef8351 bot commented Mar 26, 2026

View all feedbacks in Devflow UI.

2026-03-26 14:42:17 UTC ℹ️ Start processing command /merge


2026-03-26 14:42:30 UTC ℹ️ MergeQueue: waiting for PR to be ready

This pull request is not mergeable according to GitHub. Common reasons include pending required checks, missing approvals, or merge conflicts — but it could also be blocked by other repository rules or settings.
It will be added to the queue as soon as checks pass and/or get approvals. View in MergeQueue UI.
Note: if you pushed new commits since the last approval, you may need additional approval.
You can remove it from the waiting list with /remove command.


2026-03-26 15:14:19 UTC ℹ️ MergeQueue: merge request added to the queue

The expected merge time in master is approximately 2h (p90).


2026-03-26 16:21:04 UTC ℹ️ MergeQueue: This merge request was merged

@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Mar 26, 2026

Benchmarks

⚠️ Warning: Baseline build not found for merge-base commit. Comparing against the latest commit on master instead.

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/virtual-threads
git_commit_date 1774534937 1774534307
git_commit_sha 17a89d1ec3 96eda42
release_version 1.61.0-SNAPSHOT~517a89d1ec3 1.61.0-SNAPSHOT~96eda42a2f
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1774536230 1774536230
ci_job_id 1541348457 1541348457
ci_pipeline_id 104541210 104541210
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-xx8v03as 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-xx8v03as 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 59 metrics, 12 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.61.0-SNAPSHOT~96eda42a2f, baseline=1.61.0-SNAPSHOT~517a89d1ec3

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.055 s) : 0, 1055079
Total [baseline] (8.87 s) : 0, 8870002
Agent [candidate] (1.055 s) : 0, 1055487
Total [candidate] (8.835 s) : 0, 8834856
section iast
Agent [baseline] (1.238 s) : 0, 1238395
Total [baseline] (9.551 s) : 0, 9551311
Agent [candidate] (1.239 s) : 0, 1239288
Total [candidate] (9.577 s) : 0, 9576532
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.055 s -
Agent iast 1.238 s 183.315 ms (17.4%)
Total tracing 8.87 s -
Total iast 9.551 s 681.309 ms (7.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.055 s -
Agent iast 1.239 s 183.801 ms (17.4%)
Total tracing 8.835 s -
Total iast 9.577 s 741.676 ms (8.4%)
gantt
    title insecure-bank - break down per module: candidate=1.61.0-SNAPSHOT~96eda42a2f, baseline=1.61.0-SNAPSHOT~517a89d1ec3

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.197 ms) : 0, 1197
crashtracking [candidate] (1.188 ms) : 0, 1188
BytebuddyAgent [baseline] (628.473 ms) : 0, 628473
BytebuddyAgent [candidate] (627.944 ms) : 0, 627944
AgentMeter [baseline] (29.371 ms) : 0, 29371
AgentMeter [candidate] (29.395 ms) : 0, 29395
GlobalTracer [baseline] (256.542 ms) : 0, 256542
GlobalTracer [candidate] (256.746 ms) : 0, 256746
AppSec [baseline] (31.735 ms) : 0, 31735
AppSec [candidate] (31.749 ms) : 0, 31749
Debugger [baseline] (59.634 ms) : 0, 59634
Debugger [candidate] (59.559 ms) : 0, 59559
Remote Config [baseline] (592.423 µs) : 0, 592
Remote Config [candidate] (583.141 µs) : 0, 583
Telemetry [baseline] (8.002 ms) : 0, 8002
Telemetry [candidate] (8.791 ms) : 0, 8791
Flare Poller [baseline] (3.492 ms) : 0, 3492
Flare Poller [candidate] (3.559 ms) : 0, 3559
section iast
crashtracking [baseline] (1.213 ms) : 0, 1213
crashtracking [candidate] (1.199 ms) : 0, 1199
BytebuddyAgent [baseline] (807.814 ms) : 0, 807814
BytebuddyAgent [candidate] (805.366 ms) : 0, 805366
AgentMeter [baseline] (11.874 ms) : 0, 11874
AgentMeter [candidate] (11.917 ms) : 0, 11917
GlobalTracer [baseline] (247.227 ms) : 0, 247227
GlobalTracer [candidate] (248.774 ms) : 0, 248774
IAST [baseline] (25.248 ms) : 0, 25248
IAST [candidate] (25.698 ms) : 0, 25698
AppSec [baseline] (27.09 ms) : 0, 27090
AppSec [candidate] (27.679 ms) : 0, 27679
Debugger [baseline] (66.627 ms) : 0, 66627
Debugger [candidate] (67.255 ms) : 0, 67255
Remote Config [baseline] (516.86 µs) : 0, 517
Remote Config [candidate] (524.333 µs) : 0, 524
Telemetry [baseline] (11.038 ms) : 0, 11038
Telemetry [candidate] (10.866 ms) : 0, 10866
Flare Poller [baseline] (3.399 ms) : 0, 3399
Flare Poller [candidate] (3.694 ms) : 0, 3694
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.61.0-SNAPSHOT~96eda42a2f, baseline=1.61.0-SNAPSHOT~517a89d1ec3

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.057 s) : 0, 1057493
Total [baseline] (11.096 s) : 0, 11096458
Agent [candidate] (1.059 s) : 0, 1059363
Total [candidate] (10.988 s) : 0, 10988140
section appsec
Agent [baseline] (1.249 s) : 0, 1248554
Total [baseline] (11.185 s) : 0, 11184919
Agent [candidate] (1.246 s) : 0, 1246454
Total [candidate] (11.16 s) : 0, 11159652
section iast
Agent [baseline] (1.231 s) : 0, 1230632
Total [baseline] (11.37 s) : 0, 11369813
Agent [candidate] (1.235 s) : 0, 1234996
Total [candidate] (11.338 s) : 0, 11338163
section profiling
Agent [baseline] (1.182 s) : 0, 1181652
Total [baseline] (10.929 s) : 0, 10928996
Agent [candidate] (1.188 s) : 0, 1188227
Total [candidate] (11.098 s) : 0, 11098298
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.057 s -
Agent appsec 1.249 s 191.061 ms (18.1%)
Agent iast 1.231 s 173.139 ms (16.4%)
Agent profiling 1.182 s 124.16 ms (11.7%)
Total tracing 11.096 s -
Total appsec 11.185 s 88.46 ms (0.8%)
Total iast 11.37 s 273.355 ms (2.5%)
Total profiling 10.929 s -167.462 ms (-1.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.059 s -
Agent appsec 1.246 s 187.091 ms (17.7%)
Agent iast 1.235 s 175.632 ms (16.6%)
Agent profiling 1.188 s 128.864 ms (12.2%)
Total tracing 10.988 s -
Total appsec 11.16 s 171.513 ms (1.6%)
Total iast 11.338 s 350.024 ms (3.2%)
Total profiling 11.098 s 110.158 ms (1.0%)
gantt
    title petclinic - break down per module: candidate=1.61.0-SNAPSHOT~96eda42a2f, baseline=1.61.0-SNAPSHOT~517a89d1ec3

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.19 ms) : 0, 1190
crashtracking [candidate] (1.203 ms) : 0, 1203
BytebuddyAgent [baseline] (628.796 ms) : 0, 628796
BytebuddyAgent [candidate] (631.894 ms) : 0, 631894
AgentMeter [baseline] (29.375 ms) : 0, 29375
AgentMeter [candidate] (29.176 ms) : 0, 29176
GlobalTracer [baseline] (256.555 ms) : 0, 256555
GlobalTracer [candidate] (256.431 ms) : 0, 256431
AppSec [baseline] (31.769 ms) : 0, 31769
AppSec [candidate] (31.577 ms) : 0, 31577
Debugger [baseline] (60.174 ms) : 0, 60174
Debugger [candidate] (60.216 ms) : 0, 60216
Remote Config [baseline] (594.099 µs) : 0, 594
Remote Config [candidate] (600.609 µs) : 0, 601
Telemetry [baseline] (8.678 ms) : 0, 8678
Telemetry [candidate] (7.987 ms) : 0, 7987
Flare Poller [baseline] (4.307 ms) : 0, 4307
Flare Poller [candidate] (4.282 ms) : 0, 4282
section appsec
crashtracking [baseline] (1.187 ms) : 0, 1187
crashtracking [candidate] (1.184 ms) : 0, 1184
BytebuddyAgent [baseline] (660.272 ms) : 0, 660272
BytebuddyAgent [candidate] (658.818 ms) : 0, 658818
AgentMeter [baseline] (12.108 ms) : 0, 12108
AgentMeter [candidate] (12.082 ms) : 0, 12082
GlobalTracer [baseline] (258.115 ms) : 0, 258115
GlobalTracer [candidate] (257.838 ms) : 0, 257838
AppSec [baseline] (177.756 ms) : 0, 177756
AppSec [candidate] (177.964 ms) : 0, 177964
Debugger [baseline] (66.07 ms) : 0, 66070
Debugger [candidate] (65.649 ms) : 0, 65649
Remote Config [baseline] (628.089 µs) : 0, 628
Remote Config [candidate] (633.949 µs) : 0, 634
Telemetry [baseline] (8.414 ms) : 0, 8414
Telemetry [candidate] (8.327 ms) : 0, 8327
Flare Poller [baseline] (3.541 ms) : 0, 3541
Flare Poller [candidate] (3.587 ms) : 0, 3587
IAST [baseline] (24.236 ms) : 0, 24236
IAST [candidate] (24.186 ms) : 0, 24186
section iast
crashtracking [baseline] (1.184 ms) : 0, 1184
crashtracking [candidate] (1.191 ms) : 0, 1191
BytebuddyAgent [baseline] (797.609 ms) : 0, 797609
BytebuddyAgent [candidate] (801.264 ms) : 0, 801264
AgentMeter [baseline] (11.397 ms) : 0, 11397
AgentMeter [candidate] (11.512 ms) : 0, 11512
GlobalTracer [baseline] (247.967 ms) : 0, 247967
GlobalTracer [candidate] (249.305 ms) : 0, 249305
AppSec [baseline] (26.867 ms) : 0, 26867
AppSec [candidate] (27.495 ms) : 0, 27495
Debugger [baseline] (70.144 ms) : 0, 70144
Debugger [candidate] (69.658 ms) : 0, 69658
Remote Config [baseline] (528.311 µs) : 0, 528
Remote Config [candidate] (532.613 µs) : 0, 533
Telemetry [baseline] (9.68 ms) : 0, 9680
Telemetry [candidate] (9.119 ms) : 0, 9119
Flare Poller [baseline] (3.651 ms) : 0, 3651
Flare Poller [candidate] (3.317 ms) : 0, 3317
IAST [baseline] (25.591 ms) : 0, 25591
IAST [candidate] (25.492 ms) : 0, 25492
section profiling
ProfilingAgent [baseline] (93.43 ms) : 0, 93430
ProfilingAgent [candidate] (94.552 ms) : 0, 94552
crashtracking [baseline] (1.163 ms) : 0, 1163
crashtracking [candidate] (1.172 ms) : 0, 1172
BytebuddyAgent [baseline] (682.414 ms) : 0, 682414
BytebuddyAgent [candidate] (685.454 ms) : 0, 685454
AgentMeter [baseline] (9.043 ms) : 0, 9043
AgentMeter [candidate] (9.061 ms) : 0, 9061
GlobalTracer [baseline] (214.858 ms) : 0, 214858
GlobalTracer [candidate] (216.623 ms) : 0, 216623
AppSec [baseline] (32.263 ms) : 0, 32263
AppSec [candidate] (32.288 ms) : 0, 32288
Debugger [baseline] (65.945 ms) : 0, 65945
Debugger [candidate] (65.292 ms) : 0, 65292
Remote Config [baseline] (561.581 µs) : 0, 562
Remote Config [candidate] (568.005 µs) : 0, 568
Telemetry [baseline] (7.695 ms) : 0, 7695
Telemetry [candidate] (8.563 ms) : 0, 8563
Flare Poller [baseline] (3.446 ms) : 0, 3446
Flare Poller [candidate] (3.495 ms) : 0, 3495
Profiling [baseline] (93.979 ms) : 0, 93979
Profiling [candidate] (95.12 ms) : 0, 95120
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/virtual-threads
git_commit_date 1774535079 1774534307
git_commit_sha 17a89d1ec3 96eda42
release_version 1.61.0-SNAPSHOT~517a89d1ec3 1.61.0-SNAPSHOT~96eda42a2f
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1774536848 1774536848
ci_job_id 1541348459 1541348459
ci_pipeline_id 104541210 104541210
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-gintu4h3 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-gintu4h3 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 2 performance improvements and 0 performance regressions! Performance is the same for 16 metrics, 18 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:petclinic:iast:high_load better
[-1.542ms; -0.749ms] or [-8.386%; -4.074%]
better
[-2.485ms; -1.162ms] or [-8.255%; -3.860%]
unstable
[-8.432op/s; +41.994op/s] or [-3.396%; +16.914%]
17.245ms 28.278ms 265.062op/s 18.391ms 30.101ms 248.281op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~96eda42a2f, baseline=1.61.0-SNAPSHOT~517a89d1ec3
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.198 ms) : 1186, 1209
.   : milestone, 1198,
iast (3.268 ms) : 3221, 3316
.   : milestone, 3268,
iast_FULL (6.016 ms) : 5955, 6077
.   : milestone, 6016,
iast_GLOBAL (3.671 ms) : 3605, 3736
.   : milestone, 3671,
profiling (2.24 ms) : 2218, 2262
.   : milestone, 2240,
tracing (1.769 ms) : 1754, 1784
.   : milestone, 1769,
section candidate
no_agent (1.163 ms) : 1152, 1174
.   : milestone, 1163,
iast (3.138 ms) : 3101, 3176
.   : milestone, 3138,
iast_FULL (5.827 ms) : 5769, 5885
.   : milestone, 5827,
iast_GLOBAL (3.509 ms) : 3456, 3561
.   : milestone, 3509,
profiling (2.085 ms) : 2066, 2104
.   : milestone, 2085,
tracing (1.8 ms) : 1784, 1816
.   : milestone, 1800,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.198 ms [1.186 ms, 1.209 ms] -
iast 3.268 ms [3.221 ms, 3.316 ms] 2.071 ms (172.9%)
iast_FULL 6.016 ms [5.955 ms, 6.077 ms] 4.819 ms (402.4%)
iast_GLOBAL 3.671 ms [3.605 ms, 3.736 ms] 2.473 ms (206.5%)
profiling 2.24 ms [2.218 ms, 2.262 ms] 1.042 ms (87.0%)
tracing 1.769 ms [1.754 ms, 1.784 ms] 571.531 µs (47.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.163 ms [1.152 ms, 1.174 ms] -
iast 3.138 ms [3.101 ms, 3.176 ms] 1.975 ms (169.8%)
iast_FULL 5.827 ms [5.769 ms, 5.885 ms] 4.664 ms (400.9%)
iast_GLOBAL 3.509 ms [3.456 ms, 3.561 ms] 2.346 ms (201.7%)
profiling 2.085 ms [2.066 ms, 2.104 ms] 921.924 µs (79.3%)
tracing 1.8 ms [1.784 ms, 1.816 ms] 637.059 µs (54.8%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~96eda42a2f, baseline=1.61.0-SNAPSHOT~517a89d1ec3
    dateFormat X
    axisFormat %s
section baseline
no_agent (17.917 ms) : 17734, 18100
.   : milestone, 17917,
appsec (18.583 ms) : 18394, 18772
.   : milestone, 18583,
code_origins (17.629 ms) : 17457, 17802
.   : milestone, 17629,
iast (18.798 ms) : 18609, 18988
.   : milestone, 18798,
profiling (18.504 ms) : 18320, 18688
.   : milestone, 18504,
tracing (17.662 ms) : 17485, 17840
.   : milestone, 17662,
section candidate
no_agent (19.028 ms) : 18835, 19220
.   : milestone, 19028,
appsec (18.613 ms) : 18427, 18800
.   : milestone, 18613,
code_origins (17.608 ms) : 17435, 17781
.   : milestone, 17608,
iast (17.603 ms) : 17429, 17777
.   : milestone, 17603,
profiling (18.801 ms) : 18614, 18987
.   : milestone, 18801,
tracing (18.01 ms) : 17832, 18187
.   : milestone, 18010,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.917 ms [17.734 ms, 18.1 ms] -
appsec 18.583 ms [18.394 ms, 18.772 ms] 666.21 µs (3.7%)
code_origins 17.629 ms [17.457 ms, 17.802 ms] -287.409 µs (-1.6%)
iast 18.798 ms [18.609 ms, 18.988 ms] 881.56 µs (4.9%)
profiling 18.504 ms [18.32 ms, 18.688 ms] 587.045 µs (3.3%)
tracing 17.662 ms [17.485 ms, 17.84 ms] -254.432 µs (-1.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.028 ms [18.835 ms, 19.22 ms] -
appsec 18.613 ms [18.427 ms, 18.8 ms] -414.513 µs (-2.2%)
code_origins 17.608 ms [17.435 ms, 17.781 ms] -1.42 ms (-7.5%)
iast 17.603 ms [17.429 ms, 17.777 ms] -1.425 ms (-7.5%)
profiling 18.801 ms [18.614 ms, 18.987 ms] -227.187 µs (-1.2%)
tracing 18.01 ms [17.832 ms, 18.187 ms] -1.018 ms (-5.4%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/virtual-threads
git_commit_date 1774534900 1774534307
git_commit_sha 17a89d1ec3 96eda42
release_version 1.61.0-SNAPSHOT~517a89d1ec3 1.61.0-SNAPSHOT~96eda42a2f
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1774536341 1774536341
ci_job_id 1541348460 1541348460
ci_pipeline_id 104541210 104541210
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-v9atum7c 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-v9atum7c 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~96eda42a2f, baseline=1.61.0-SNAPSHOT~517a89d1ec3
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.471 ms) : 1460, 1483
.   : milestone, 1471,
appsec (2.528 ms) : 2473, 2584
.   : milestone, 2528,
iast (2.253 ms) : 2184, 2321
.   : milestone, 2253,
iast_GLOBAL (2.295 ms) : 2225, 2365
.   : milestone, 2295,
profiling (2.094 ms) : 2039, 2150
.   : milestone, 2094,
tracing (2.064 ms) : 2010, 2118
.   : milestone, 2064,
section candidate
no_agent (1.471 ms) : 1460, 1483
.   : milestone, 1471,
appsec (2.574 ms) : 2516, 2632
.   : milestone, 2574,
iast (2.258 ms) : 2189, 2327
.   : milestone, 2258,
iast_GLOBAL (2.294 ms) : 2224, 2364
.   : milestone, 2294,
profiling (2.079 ms) : 2024, 2134
.   : milestone, 2079,
tracing (2.066 ms) : 2012, 2120
.   : milestone, 2066,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.471 ms [1.46 ms, 1.483 ms] -
appsec 2.528 ms [2.473 ms, 2.584 ms] 1.057 ms (71.8%)
iast 2.253 ms [2.184 ms, 2.321 ms] 781.066 µs (53.1%)
iast_GLOBAL 2.295 ms [2.225 ms, 2.365 ms] 823.623 µs (56.0%)
profiling 2.094 ms [2.039 ms, 2.15 ms] 622.855 µs (42.3%)
tracing 2.064 ms [2.01 ms, 2.118 ms] 592.606 µs (40.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.471 ms [1.46 ms, 1.483 ms] -
appsec 2.574 ms [2.516 ms, 2.632 ms] 1.102 ms (74.9%)
iast 2.258 ms [2.189 ms, 2.327 ms] 786.532 µs (53.5%)
iast_GLOBAL 2.294 ms [2.224 ms, 2.364 ms] 822.456 µs (55.9%)
profiling 2.079 ms [2.024 ms, 2.134 ms] 607.978 µs (41.3%)
tracing 2.066 ms [2.012 ms, 2.12 ms] 594.668 µs (40.4%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~96eda42a2f, baseline=1.61.0-SNAPSHOT~517a89d1ec3
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.95 s) : 14950000, 14950000
.   : milestone, 14950000,
appsec (14.693 s) : 14693000, 14693000
.   : milestone, 14693000,
iast (18.365 s) : 18365000, 18365000
.   : milestone, 18365000,
iast_GLOBAL (17.543 s) : 17543000, 17543000
.   : milestone, 17543000,
profiling (15.05 s) : 15050000, 15050000
.   : milestone, 15050000,
tracing (14.795 s) : 14795000, 14795000
.   : milestone, 14795000,
section candidate
no_agent (15.425 s) : 15425000, 15425000
.   : milestone, 15425000,
appsec (14.406 s) : 14406000, 14406000
.   : milestone, 14406000,
iast (18.452 s) : 18452000, 18452000
.   : milestone, 18452000,
iast_GLOBAL (17.525 s) : 17525000, 17525000
.   : milestone, 17525000,
profiling (14.953 s) : 14953000, 14953000
.   : milestone, 14953000,
tracing (14.784 s) : 14784000, 14784000
.   : milestone, 14784000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.95 s [14.95 s, 14.95 s] -
appsec 14.693 s [14.693 s, 14.693 s] -257.0 ms (-1.7%)
iast 18.365 s [18.365 s, 18.365 s] 3.415 s (22.8%)
iast_GLOBAL 17.543 s [17.543 s, 17.543 s] 2.593 s (17.3%)
profiling 15.05 s [15.05 s, 15.05 s] 100.0 ms (0.7%)
tracing 14.795 s [14.795 s, 14.795 s] -155.0 ms (-1.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.425 s [15.425 s, 15.425 s] -
appsec 14.406 s [14.406 s, 14.406 s] -1.019 s (-6.6%)
iast 18.452 s [18.452 s, 18.452 s] 3.027 s (19.6%)
iast_GLOBAL 17.525 s [17.525 s, 17.525 s] 2.1 s (13.6%)
profiling 14.953 s [14.953 s, 14.953 s] -472.0 ms (-3.1%)
tracing 14.784 s [14.784 s, 14.784 s] -641.0 ms (-4.2%)

@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot merged commit c0ce9c5 into master Mar 26, 2026
566 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot deleted the bbujon/virtual-threads branch March 26, 2026 16:21
@github-actions github-actions bot added this to the 1.61.0 milestone Mar 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: context propagation Trace context propagation inst: java Core Java language instrumentation type: bug Bug report and fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants